package com.superatom.concurrent.share;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 使用原子类，对EvenGenerator进行重写
 *
 * 使用了AtomicInteger代替了synchronized关键字
 *
 * 通常依赖锁会更安全一些
 */
public class AtomicEvenGenerator extends IntGenerator {
    private AtomicInteger currentEvenValue = new AtomicInteger(0);

    public int next(){
        return currentEvenValue.addAndGet(2);
    }

    public static void main(String[] args) {
        EvenChecker.test(new AtomicEvenGenerator());
    }
}
